[% setvar title The Perl 6 Summary for the week ending 20050814 %]
<div id="archive-notice">
    <h3>This file is part of the Perl 6 Archive</h3>
    <p>To see what is currently happening visit <a href="http://www.perl6.org/">http://www.perl6.org/</a></p>
</div>
<div class='pod'>
<a name='The Perl 6 Summary for the week ending 20050814'></a><h1>The Perl 6 Summary for the week ending 20050814</h1>
<p>As you will note from the date in the title, it's been a short week. We're
switching back to a midnight Sunday/Monday rollover in order to make life
easier for the perl.com types. So, if I can avoid being distracted too much by
the second Ashes test we'll try and get the summary finished on before Monday
is out, which should please chromatic.</p>
<a name='This week in perl6-compiler'></a><h1>This week in perl6-compiler</h1>
<p>Another low volume week in perl6-compiler; probably because, with the high
speed of pugs development, most of the discussion happens on IRC.</p>
<a name='Container model - pictures and questions'></a><h2>Container model - pictures and questions</h2>
<p>Autrijus fielded some questions about and updated the pictures of the container
model.</p>
<p><a href='http://groups.google.com/groups?threadm=20050806162158.GB2263@aut.dyndns.org' target='_blank'>groups.google.com</a></p>
<a name='Why PXPerl?'></a><h2>Why PXPerl?</h2>
<p>Robert (No Surname) asked what were the benefits of PXPerl over the ActiveState
distribution. In short, PXPerl comes with Parrot and Pugs, which ActiveState
doesn't. If you set your path appropriately, you can continue to use the
ActiveState Perl and just rely on PXPerl for Parrot and Pugs.</p>
<p><a href='http://groups.google.com/groups?threadm=20050808125840.22956.qmail@lists.develooper.com' target='_blank'>groups.google.com</a></p>
<a name='Hoisting lexical declarations'></a><h2>Hoisting lexical declarations</h2>
<p>Larry answered some of Autrijus's questions about Perl 6's lexical scoping
rules. Apparently what Pugs currently does is close enough to sane to be going
on with.</p>
<p><a href='http://groups.google.com/groups?threadm=20050809193348.GA27323@wall.org' target='_blank'>groups.google.com</a></p>
<a name='Warnock in Pugsland'></a><h2>Warnock in Pugsland</h2>
<p>Autrijus noted that, in Pugsland, a Warnocked patch usually means that the
person who posted the patch simply got given a committer bit and didn't mention
the fact on the list.</p>
<p><a href='http://groups.google.com/groups?threadm=20050811040041.GB56898@aut.dyndns.org' target='_blank'>groups.google.com</a></p>
<a name='MetaModel Notes'></a><h2>MetaModel Notes</h2>
<p>Nathan Gray posted some notes and ASCII art about the Metamodel. Autrijus added
pointers to further pictures.</p>
<p><a href='http://pugscode.org/images/metamodel.png' target='_blank'>pugscode.org</a></p>
<p><a href='http://groups.google.com/groups?threadm=20050811193918.GB12852@vs2.capwiz.com' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?threadm=20050812170838.GA820@aut.dyndns.org' target='_blank'>groups.google.com</a></p>
<a name='Meanwhile, in perl6-internals'></a><h1>Meanwhile, in perl6-internals</h1>
<a name='Updated intro.pod'></a><h2>Updated <b><i>intro.pod</i></b></h2>
<p>Jonathan Worthington posted a rewrite of Parrot's <b><i>intro.pod</i></b>
document, now with a discussion of PIR. Huzzah!</p>
<p><a href='http://groups.google.com/groups?threadm=01bf01c59ba4$384dc5d0$0200a8c0@SERVER' target='_blank'>groups.google.com</a></p>
<a name='Test::Builder and friends on Parrot'></a><h2>Test::Builder and friends on Parrot</h2>
<p>Following prompting from Geoff Young and Jeff Horwitz, chromatic has
implemented Test::Builder and Test::Builder::Tester in pure parrot. For his
next trick, he intends to port Test::More and Parrot::Test.</p>
<p>Tests are good, m'kay?</p>
<p><a href='http://groups.google.com/groups?threadm=1123570251.22403.70.camel@localhost' target='_blank'>groups.google.com</a></p>
<a name='How to add a new opcode?'></a><h2>How to add a new opcode?</h2>
<p>Gerd Pokorra asked how to add an opcode to Parrot. Klaas-Jan Stol and Leo gave
the answers.</p>
<p><a href='http://groups.google.com/groups?threadm=1123573276.8867.6.camel@lgerd.hrz.uni-siegen.de' target='_blank'>groups.google.com</a></p>
<a name='Cleaning up the call opcodes'></a><h2>Cleaning up the call opcodes</h2>
<p>Leo reposted about cleaning up the various function calling opcodes to take
account of the fact that the calling conventions have changed. He asked for
opinions and actually got a couple, which is handy since he got Warnocked last
time.</p>
<p><a href='http://groups.google.com/groups?threadm=42FA0FFB.6090605@toetsch.at' target='_blank'>groups.google.com</a></p>
<a name='parrot -I'></a><h2><code>parrot -I</code></h2>
<p>Amir Karger wondered if there was some way of telling Parrot to add directories
to its load path. Leo seemed not to think it was that good an idea, and
proposed using a relative path in a <code>.include</code> directive.</p>
<p><a href='http://groups.google.com/groups?threadm=d113603e0508101127396ed8c7@mail.gmail.com' target='_blank'>groups.google.com</a></p>
<a name='Dominance Frontiers'></a><h2>Dominance Frontiers</h2>
<p>Curtis Rawls continued his work on dominance frontiers to improve Parrot's
optimizer.</p>
<p><a href='http://groups.google.com/groups?threadm=45ec99fc050810182530001652@mail.gmail.com' target='_blank'>groups.google.com</a></p>
<a name='PGE globber, empty strings'></a><h2>PGE globber, empty strings</h2>
<p>Will Coleda reported that trying to match empty strings with PGE's <code>glob</code>
implementation. It turned out to be a problem with Data::Escape. Leo fixed it.</p>
<p><a href='http://groups.google.com/groups?threadm=rt-3.0.11-36882-119083.2.43242787217334@perl.org' target='_blank'>groups.google.com</a></p>
<a name='Deprecated opcodes'></a><h2>Deprecated opcodes</h2>
<p>Leo posted a list of opcodes that are due for the chop (or alteration) soon. If
you're doing anything with Parrot, it's probably a good idea to take a look at
this. One of those who did was chromatic, who asked if Leo could give some
examples of translating code so as not to use the old forms.</p>
<p><a href='http://groups.google.com/groups?threadm=42FDF124.2090502@toetsch.at' target='_blank'>groups.google.com</a></p>
<a name='Meanwhile, in perl6-language'></a><h1>Meanwhile, in perl6-language</h1>
<p>Hmm... 8 balls to go with one wicket needed. I think I'll pause for a while...</p>
<p>Damn. Australia have saved the game.</p>
<a name='Translating (or at least parsing) Java interface definitions'></a><h2>Translating (or at least parsing) Java interface definitions</h2>
<p>Tim Bunce wondered if anyone had done any work on parsing Java interface
declarations and (ideally) translating them to roughly equivalent Perl
6. Apparently Gaal Yahas has done something along these lines (with
Parse::RecDescent for Perl 5) but doesn't own the code. He outlined the
approach he took.</p>
<p><a href='http://groups.google.com/groups?threadm=20050808092526.GA22546@timac.local' target='_blank'>groups.google.com</a></p>
<a name='Perl 6 Meta Object Protocols and $object.meta.isa(?)'></a><h2>Perl 6 Meta Object Protocols and <code>$object.meta.isa(?)</code></h2>
<p>Stevan Little is busy documenting the Perl 6 Meta Model that he's implemented
in Perl 5 and that Autrijus is busy porting to Haskell. He posted an overview
to the list and asked for comment. There then followed lots of discussion. I
think I understood some of it.</p>
<p><a href='http://groups.google.com/groups?threadm=3475d813377a34a21cf4f71cd3cb4ff7@iinteractive.com' target='_blank'>groups.google.com</a></p>
<!-- POD_ERROR: unterminated C<...> at line 148 in file list-summaries/2005/p6summary.2005-08-14.pod -->
<a name='$object.meta.isa(?) redux'></a><h2><code>$object.meta.isa(?) redux</code></h2>
<p>Stevan split the discussion of <code>$object.meta.isa(?)</code> off from the earlier
metamodel thread into a thread of its own and asked for comments once
more. Larry commented that &quot;the Apocalypses are primarily intended to be
entertaining rather than factual&quot;. Also in this thread, Luke let slip that
there's now a 'Set' role in Perl 6, which has the enormous advantage of letting
us specify argument types in a sensible way without having to overload the
Junctions.</p>
<p><a href='http://groups.google.com/groups?threadm=36ec7a232a62f8565dd9a15a133c19ae@iinteractive.com' target='_blank'>groups.google.com</a></p>
<a name='$obj.meta.add_method('foo' = ???)&gt;'></a><h2><code>$obj.meta.add_method('foo' =</code> ???)&gt;</h2>
<p>Stevan continued discussing the metamodel with a thread about the <code>add_method</code>
method. Autrijus was the only person with comments.</p>
<p><a href='http://groups.google.com/groups?threadm=9c7e425e9c5a0c61f989e6d2cef11984@iinteractive.com' target='_blank'>groups.google.com</a></p>
<a name='Proposed new traits'></a><h2>Proposed new traits</h2>
<p>Autrijus said that he'd started to write the inferencer and had immediately run
into the problem that every type can potentially contain <code>undef</code>. He proposed
adding an <code>is defined</code> trait, which would cause variable to immediately throw
an exception if anyone attempted to assign it an undefined value. He also
proposed a <code>typed</code> trait, but I was a little less clear on why this would be a
good idea. I have to confess I didn't understand what Larry's reply was driving
at, but that's okay because Autrijus did seem to understand it.</p>
<p><a href='http://groups.google.com/groups?threadm=20050810160946.GA40843@aut.dyndns.org' target='_blank'>groups.google.com</a></p>
<a name='my $pi is constant = 3'></a><h2><code>my $pi is constant = 3</code></h2>
<p>Autrijus wondered if an example of the <code>is constant</code> trait shown in Synopsis 6
was a special form or a typo. At least, I think that's what he was asking; I
may be wearing my stupid head today though. Larry thought it was neither. I
think. It seems there's more to constancy than meets the eye. (Just ask any
married couple).</p>
<p><a href='http://groups.google.com/groups?threadm=20050810182204.GA47889@aut.dyndns.org' target='_blank'>groups.google.com</a></p>
<a name='Typed type variables (my Foo ::x)'></a><h2>Typed type variables (<code>my Foo ::x</code>)</h2>
<p>Stuart Cook asked about the meaning of type annotations on
type-variables. Autrijus answered and Thomas Sandlaß agreed with him.</p>
<p><a href='http://groups.google.com/groups?threadm=49b35106050811030261b5d30f@mail.gmail.com' target='_blank'>groups.google.com</a></p>
<a name='BEGIN {...} and IO'></a><h2><code>BEGIN {...}</code> and IO</h2>
<p>Nicholas Clark commented on an earlier discussion of using IO in <code>BEGIN</code>
blocks, pointing out that this was just a specific case of the more general
problem of attempting to serialize things to bytecode which were simply
unserializable. I reckon the trick of it will be to do such things in <code>INIT</code>
or possibly <code>CHECK</code> blocks (I can never remember which way round those two
go).</p>
<p><a href='http://groups.google.com/groups?threadm=20050813152743.GA15373@plum.flirble.org' target='_blank'>groups.google.com</a></p>
<a name='Generic Classes'></a><h2>Generic Classes</h2>
<p>Autrijus asked about generic classes, but nobody answered before the end of the
summary week. Expect Matt to address this one in the next summary.</p>
<p><a href='http://groups.google.com/groups?threadm=20050814122833.GA53143@aut.dyndns.org' target='_blank'>groups.google.com</a></p>
<a name='Acknowledgements, adverts, apologies and alliteration'></a><h2>Acknowledgements, adverts, apologies and alliteration</h2>
<p>I'm sorry to have to say this, but I don't think I have to apologise for
anything this week. WorldCon was fun.</p>
<a name='Help Chip'></a><h2>Help Chip</h2>
<p><a href='http://geeksunite.org/,' target='_blank'>geeksunite.org</a> tell all your friends, this cannot stand.</p>
<a name='The usual Coda'></a><h2>The usual Coda</h2>
<p>If you find these summaries useful or enjoyable, please consider
contributing to the Perl Foundation to help support the development of
Perl.</p>
<p><a href='http://donate.perl-foundation.org/' target='_blank'>donate.perl-foundation.org</a> -- The Perl Foundation</p>
<p><a href='http://dev.perl.org/perl6/' target='_blank'>dev.perl.org</a> -- Perl 6 Development site</p>
<p>Check out my website, it's lovely.</p>
<p><a href='http://www.bofh.org.uk/' target='_blank'>www.bofh.org.uk</a></p>
<p>Vaguely pretty photos by me can be found at:</p>
<p><a href='http://www.flickr.com/photos/pdcawley' target='_blank'>www.flickr.com</a></p>
</div>
